1. Field
Embodiments of the invention relate to a universal architecture for client management extensions on monitoring, control, and configuration.
2. Description of the Related Art
Databases are computerized information storage and retrieval systems. Relational databases are organized into tables that consist of rows and columns of data. The rows may be called tuples or records or rows. A database typically has many tables, and each table typically has multiple rows and multiple columns. A query (e.g., a SQL statement) may be described as a request for information from a database based on specific conditions.
Modern database tools are emerging these days to facilitate database administrators to monitor, control, and configure complicated and distributed database environments more efficiently and effectively. Database environments typically include at least one client computer, at least one database server computer, and at least one database. Due to the distinct nature of different management functionalities (e.g., monitoring, control, and configuration), those database tools are mostly built on top of a wide variety of architectures, and each of the database tools is equipped with a separate channel and protocol for communication among respective components in the database environments. Consequently, overall performance of those database environments can be negatively impacted under the operations of a number of database tools that all function independently with their own channels and protocols within the database environments.
Moreover, individual, distinct architecture used by each additional database tool imposes additional development, deployment, and maintenance effort for the database administrators. The architecture may be described as how each database tool may be implemented. However, due to increasing complexity and heterogeneity, it is far from a trivial task to resolve such difficult points in modern database environments. Hierarchically, various database clients can operate on top of one another as a sequence of call stack layers, where, for example, an application server (i.e., the client computer may be the application server running applications) can invoke a persistence layer which can in turn call into a database driver. Thus, a call stack may be said to describe the layers that are in use when an application is running. A persistence layer may be described as mapping runtime objects (e.g., tables and objects). A database driver may be described as enabling communication between a client computer and a database server computer. Concurrently, multiple database tools can also function in parallel independently. Thus, there is a need for accommodating hierarchical (i.e., with reference to the call stack) and concurrent management functionalities leveraged by the database environments.